#ifndef EXPRESSION_NODE_H
#define EXPRESSION_NODE_H

template <typename T>
class SharedArray;
class Column;

class ExpressionNode {
	public:
		virtual ~ExpressionNode() {}

		// Computes output of a single operator. Caller takes ownership of data.
		virtual Column pull(const SharedArray<Column>& data) = 0;
};

#endif
